#!/usr/bin/env python3
# -*- coding:UTF-8 -*-
#本代码段主要是练习Python基本数据类型-字符串对象的各类操作

#导入基本类
import os,sys,re
import string
## 1.1 字符串打印
#print('Hello,python.I am your string.\n') #本句中，直接打印了字符串常量和特殊字符换行符。
print("Hello,python.I am your string.\n") #本句中，直接打印了字符串常量和特殊字符换行符。

## 1.2 字符串的输入
#print('Hello,python.I am your %s' % 'string') #本句中，格式化输入字符串，使用常量
print("Hello,python.I am your %s" % 'string') #本句中，格式化输入字符串，使用常量
string_001 = 'string'
print("Hello,python.I am your %s" % string_001) #本句中，格式化输入字符串，输入时使用了变量。

## 1.3 字符串的运算
### 1.3.1 字符串加法运算(拼接)
#print('Hello'+','+'python.'+'I '+'am '+'your '+'%s' % 'string')
print("Hello,%s.I am your %s" % ('python','string')) #python中尤其需要注意单引号和双引号的区别。

### 1.3.2 字符串的减法运算(删除指定字符)
IwantSay = "Hello,everyone.My name is YunWeiNote. I'm every happy to study Python."
### 1.3.2 字符串复制
string_001 = IwantSay
print(string_001) #复制字符串的意义 ，感觉不是很大
### 1.3.2 字符串的检索(简单)
#### 1.3.2.1 index方法
try:
    print(IwantSay.index('YurWeiNote')) #index索引之意，默认是有字符串的。如果索引失败，抛出异常.
except:
    print('index异常')
#### 1.3.2.2 find方法
try:
    print(IwanSay.find('YunweiNote')) #find则为发现之意，并不知道有或者没有，有则返回索引值，无则返回-1
except:
    print('find没有')
### 1.3.3 字符串的检索(复杂)
#### 1.3.3.1正则表达式
### 1.3.4 字符串的比较(比较神奇)
#### 1.3.4.1 is判断(专注字符串)
string_002 = 'yunweinote'
string_003 = 'YunWeiNote'
if string_002 is string_003:
    print("%s is %s" % (string_002,string_003))
else:
    print("%s is not %s" % (string_002,string_003))
#### 1.3.4.2 ==判断(专注数字)
if string_002 == 'yunweinote':
    print("%s == %s" % (string_002,'yunweinote'))
else:
    print("%s == not %s" % (string_002,'yunweinote'))
#print(cmp(string_002,string_003)) #cmp函数在Python3中移除

# string模块内嵌函数
## 将字符串常用操作均封装成方法(函数)
print(IwantSay.__add__('ByeBye')) #添加: +
print(IwantSay.__contains__('yunweinote') or IwantSay.__contains__('YunWeiNote')) #检索:index/find
print(IwantSay.find('I',0,70))
print(IwantSay.index('I'))
print(IwantSay.__eq__('YunWeiNote')) #判断相同: ==
print('A'.__ge__('a')) #大小比较
#print('A'.__le__('a'))
print(IwantSay.__len__()) #统计长度
#print(len(IwantSay))
Name = "yunweinote"
print(Name.capitalize()) #首字母处理
#print(Name.capitalize().casefold()) ???
print(Name.center(20,'*')) #特殊处理，居中
print(IwantSay.count('.')) #字符统计
print(IwantSay.count('h',3,13)) #起始位置
print(IwantSay.endswith('.')) #判断字符串尾
print(IwantSay.isalnum()) #判断数字或者字母
print(IwantSay.isalpha())
Name = "Yun:Wei:Note"
print(Name.partition(':')) #字符串分割
Name = "yunweinote"
print(Name.zfill(30))